home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Think Class Libraries / CommToolbox (modified) / Headers / CFileTransfer.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-30  |  3.8 KB  |  134 lines  |  [TEXT/KAHL]

  1. /* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
  2.  
  3.     CFileTransfer.h
  4.     
  5.     CommToolbox file transfer class.
  6.     
  7.     SUPERCLASS = CBureaucrat.
  8.     
  9.     Copyright © 1992-93 Romain Vignes. All rights reserved.
  10.     
  11. ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
  12.  
  13. #ifndef _H_CFileTransfer
  14. #define _H_CFileTransfer
  15.  
  16. #include <FileTransfers.h>                    /* Apple includes */
  17.  
  18. #ifdef __USETHREADS__
  19.     #include "CThread.h"                    /* Thread Manager */
  20. #endif
  21.  
  22. #include <CBureaucrat.h>                    /* Interface for its superclass */
  23.  
  24. #include "CConnection.h"                    /* connection definition. */
  25.  
  26. /* Commands */
  27.  
  28. #define cmdFTransChoose        2300            /* Transfer setup */
  29. #define cmdFTransSend        2301            /* File sending */
  30. #define cmdFTransRecv        2302            /* File receiving */
  31.  
  32. // callback proc type
  33. typedef FileTransferReadProcPtr            FTReadProcPtr;
  34. typedef FileTransferWriteProcPtr        FTWriteProcPtr;
  35. typedef FileTransferSendProcPtr            FTSendProcPtr;
  36. typedef FileTransferReceiveProcPtr        FTRcveProcPtr;
  37. typedef FileTransferEnvironsProcPtr        FTEnvProcPtr;
  38. typedef FileTransferNotificationProcPtr    FTNtfyProcPtr;
  39. typedef FileTransferChooseIdleProcPtr    FTChIdleProcPtr;
  40.  
  41. /* Forward Declarations */
  42.  
  43. class CCluster;
  44.  
  45.  
  46. /* class definition */
  47.  
  48. class CFileTransfer : public CBureaucrat    {
  49.  
  50. protected:
  51.  
  52.     /* Class Variables */
  53.     
  54.     static CCluster    *cFTransList;
  55.     
  56.     /* Instance Variables */
  57.  
  58.     FTHandle        itsFTrans;
  59.     Boolean            wasFTMode;
  60.     
  61.     Boolean            gStartFT;                // Auto-start                            
  62.     long            gFTSearchRefNum;        // Auto-Initiate File Transfers            
  63.     
  64. public:
  65.  
  66.     /* Instance Variables */
  67.  
  68.     Boolean            active;
  69.     CConnection        *itsConnection;
  70.  
  71.     #ifdef __USETHREADS__
  72.     CThread            *itsIdleThread;
  73.     #endif
  74.     
  75.     /* Class Methods */
  76.     
  77.     static void            cInitManager(void);
  78.     static short        cGetFTVersion(void);
  79.     static OSErr        cCheckToolName(Str31 toolName);
  80.     static Boolean        cIsFileTransferCmd(long theCmd);
  81.     static void            cFTransIdle(void);
  82.     static pascal void    *cOneFTIdle (void *threadParam);
  83.     static Boolean        cTestToolMenu(short theMenu, short theItem);
  84.     static Boolean        cTestToolEvent(EventRecord *macEvent, WindowPtr theWindow);
  85.     
  86.     /* Instance Methods */
  87.     
  88.     void            IFileTransfer(CBureaucrat *aSupervisor,Str31 toolName,
  89.                         FTFlags flags,FTSendProcPtr sendProc,FTRcveProcPtr recvProc,
  90.                         FTReadProcPtr readProc,FTWriteProcPtr writeProc,FTEnvProcPtr environsProc,
  91.                         WindowPtr owner,long refcon, long userData);
  92.     virtual void    Dispose(void);
  93.     virtual void    UpdateMenus(void);
  94.     virtual void    DoCommand(long theCommand);
  95.     virtual void    FileTransferChoose(void);
  96.     virtual short    SetConfig(char *theConfig);
  97.     virtual void    GetToolName(Str31 toolName);
  98.     virtual Ptr        GetConfig(void);
  99.     virtual void    DoIdle(void);
  100.     virtual void    Activate(void);
  101.     virtual void    Deactivate(void);
  102.     virtual Boolean    IsRunning(void);
  103.     virtual Boolean    IsRunningOnSameCircuit(void);    
  104.     virtual void    Start(FTDirection direction);
  105.     virtual Boolean    DoEvent(EventRecord *theEvent,WindowPtr theWindow);
  106.     virtual Boolean    Success(void);
  107.     virtual Boolean    DoMenu(short theMenu,short theItem);
  108.     
  109.     virtual FTHandle GetFTHandle (void);
  110.     
  111.     virtual void    BindConnection(CConnection *aConnection);
  112.     virtual CConnection *GetConnection(void);
  113.     
  114.     virtual Boolean    NeedsConnection (void);
  115.     
  116.     virtual void    AddSearch (void);
  117.     virtual void    RemoveSearch (void);
  118.     
  119.     virtual long GetSearchNum (void);
  120.     virtual void SetSearchNum (long SearchNum);
  121.     
  122.     virtual Boolean    AutoDownload (void);
  123.     virtual void    SetAutoDownload (Boolean state);
  124.     
  125.     // static call-back routines
  126.     static pascal CMErr    DefGetFTEnvirons (long refCon, ConnEnvironRecPtr theEnvPtr);
  127.     static pascal long    DefSendProc (Ptr thePtr,long theSize,long refcon,CMChannel channel,short flags);
  128.     static pascal long    DefReceiveProc (Ptr thePtr,long theSize,long refcon,CMChannel channel,CMFlags *flags);
  129. };
  130.  
  131. #endif
  132.  
  133. /* ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ */
  134.